package com.sg.dto.biz.component.req;

import com.sg.dto.biz.component.common.RedisBusinessDataResDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @desc QueryRefRedisBusinessDataDetailComReqDto
 * @使用场景
 */
@Data
public class QueryRefRedisBusinessDataDetailComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 业务数据对象 ACCT_STD_DATA_TARGET_CONT_SNAP:账户标准数据目标内容快照 ACCT_STD_DATA_AMT_SNAP:目标内容周期、相关人与账户快照 INIT_BUDGET_AND_REAL_ACCT:初始化预算或实体账户 TARGET_BUDGET_SET:目标预算设置 CACL_OR_UNDERPIN_STD_DATA_SNAP:计算或托底标准数据快照 EVA_TEMP_CONF_ARGUMENTS:评价模板配置参数 ORG_TYPE_DICTIONARY:组织架构类型字典 BUSINESS_DATA_OBJECT_TEST:业务数据对象验证 CALC_SUBJECTIVE_WEIGHT_SCORE:计算权重主观评分 CALC_DATA_RESULT:计算数据结果 PLATFORM_OM_CONF:平台运维配置 PLAN_TARGET_CALC_MQ_REMOTE_CONTROLLER:规划目标计算MQ遥控器 PLAN_TARGET_CALC_MQ_QUEUE:规划目标计算MQ排队 FINANCIAL_CALC_MQ_QUEUE:规划财务MQ排队 OKR_PLAN_TARGET_CALC_MQ_QUEUE:OKR目标计算MQ排队 KPI_PLAN_TARGET_CALC_MQ_QUEUE:绩效目标计算MQ排队 FINANCIAL_PLANN_MQ_REMOTE_CONTROLLER:规划财务MQ遥控器 MQ_HOVER_QUEUE_LOCK:MQ遥控器取号锁 MQ_REMOTE_CONTROLLER:MQ遥控器 OKR_TARGET_CALC_MQ_REMOTE_CONTROLLER:OKR目标计算MQ遥控器 KPI_TARGET_CALC_MQ_REMOTE_CONTROLLER:绩效目标计算MQ遥控器
     */
    @NotNull(message = "业务数据对象不能为空")
    @ApiModelProperty("业务数据对象")
    private String businessDataObject;

    /**
     * Redis数据对象目录 计算临时数据:计算临时数据 测试过程问题:测试过程问题 分段查询临时记录:分段查询临时记录 平台软件配置:平台软件配置 并发主题锁:并发主题锁 执行进度:执行进度 MQ遥控器:MQ遥控器
     */
    @NotNull(message = "Redis数据对象目录不能为空")
    @ApiModelProperty("Redis数据对象目录")
    private String redisDataObjectCatalogue;

    /**
     * 数据对象批次标识
     */
    @ApiModelProperty("数据对象批次标识")
    private String dataObjectBatchCode;

    /**
     * redis出参排序类型 ASC:从小到大 DESC:从大到小
     */
    @ApiModelProperty("redis出参排序类型")
    private String redisParamSortType;

    /**
     * 入参自定义字段1
     */
    @ApiModelProperty("入参自定义字段1")
    private String refCustomField1;

    /**
     * 入参自定义字段值1
     */
    @ApiModelProperty("入参自定义字段值1")
    private String refCustomFieldValue1;

    /**
     * 入参自定义字段2
     */
    @ApiModelProperty("入参自定义字段2")
    private String refCustomField2;

    /**
     * 入参自定义字段值2
     */
    @ApiModelProperty("入参自定义字段值2")
    private String refCustomFieldValue2;

    /**
     * 入参自定义字段3
     */
    @ApiModelProperty("入参自定义字段3")
    private String refCustomField3;

    /**
     * 入参自定义字段值3
     */
    @ApiModelProperty("入参自定义字段值3")
    private String refCustomFieldValue3;

    /**
     * 入参自定义字段4
     */
    @ApiModelProperty("入参自定义字段4")
    private String refCustomField4;

    /**
     * 入参自定义字段值4
     */
    @ApiModelProperty("入参自定义字段值4")
    private String refCustomFieldValue4;

    /**
     * 入参自定义字段5
     */
    @ApiModelProperty("入参自定义字段5")
    private String refCustomField5;

    /**
     * 入参自定义字段值5
     */
    @ApiModelProperty("入参自定义字段值5")
    private String refCustomFieldValue5;

    /**
     * 入参自定义字段6
     */
    @ApiModelProperty("入参自定义字段6")
    private String refCustomField6;

    /**
     * 入参自定义字段值6
     */
    @ApiModelProperty("入参自定义字段值6")
    private String refCustomFieldValue6;

    /**
     * 入参自定义字段7
     */
    @ApiModelProperty("入参自定义字段7")
    private String refCustomField7;

    /**
     * 入参自定义字段值7
     */
    @ApiModelProperty("入参自定义字段值7")
    private String refCustomFieldValue7;

    /**
     * 入参自定义字段8
     */
    @ApiModelProperty("入参自定义字段8")
    private String refCustomField8;

    /**
     * 入参自定义字段值8
     */
    @ApiModelProperty("入参自定义字段值8")
    private String refCustomFieldValue8;

    @ApiModelProperty("出参redis业务数据对象列表")
    private List<RedisBusinessDataResDto> redisBusinessDataResList = new ArrayList<>();

}
